package com.datax.web.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

public class JsonUtils {

	/**
	 * json转map
	 * @param object
	 * @return
	 */
	public static HashMap<String, Object> toHashMap(Object object){  
		HashMap<String, Object> data = new HashMap<String, Object>();  
        // 将json字符串转换成jsonObject  
		JSONObject jsonObject = JSONObject.fromObject(object);  
		Iterator it = jsonObject.keys();  
		// 遍历jsonObject数据，添加到Map对象  
		while (it.hasNext())  
		{  
			String key = String.valueOf(it.next());
			data.put(key, (String) jsonObject.get(key));  
		}  
        return data;  
	}
	/**
	 * 根据key获取json当级中的内容,返回map集合
	 * @param stringJson
	 * @param key
	 * @return
	 */
	public static HashMap<String, Object> getJsonMapByKey(JSONObject stringJson, String key){
		return toHashMap(JSONObject.fromObject(stringJson).get(key));
	}
	/**
	 * 根据key获取json当级中的内容,返回list集合
	 * @param stringJson
	 * @param key
	 * @return
	 */
	public static List getJsonListByKey(JSONObject stringJson, String key){
		return JSONArray.fromObject(JSONObject.fromObject(stringJson).get(key));
	}
	/**
	 * 根据key获取json当级中的内容,返回String集合
	 * @param stringJson
	 * @param key
	 * @return
	 */
	public static String getJsonStrByKey(JSONObject stringJson, String key){
		return (String) getJsonObjByKey(stringJson, key);
	}
	/**
	 * 根据key获取json当级中的内容,返回Integer集合
	 * @param stringJson
	 * @param key
	 * @return
	 */
	public static Integer getJsonIntByKey(JSONObject stringJson, String key){
		return (Integer) getJsonObjByKey(stringJson, key);
	}
	
	/**
	 * 根据key获取json当级中的内容
	 * @param stringJson
	 * @param key
	 * @return
	 */
	private static Object getJsonObjByKey(JSONObject stringJson, String key){
		return JSONObject.fromObject(stringJson).get(key);
	}
}
